<HTML>
<HEAD>
<TITLE>
Bar.h
</TITLE>
</HEAD>
<BODY>
<PRE>
<font color="blue">#pragma</font> once

<font color="blue">#include</font> <font color="maroon">"Foo.h"</font>

<font color="blue">#define</font> UGLY <font color="blue">int</font> weirdFunc<font color="black">(</font> <font color="blue">bool</font> arg <font color="black">)</font>
<font color="blue">#define</font> UGLIER<font color="black">(</font>returnType_<font color="black">)</font>   \
    <font color="black">{</font>                         \
        <font color="blue">return</font> returnType_<font color="black">(</font><font color="black">)</font>; \
    <font color="black">}</font>
    <font color="green">// (isn't that horrible?)</font>


<font color="blue">class</font> SomeExternalClass;


<font color="green">/**
 * Another class, to demonstrate some more stuff.
 */</font>
<font color="blue">class</font> Bar
<font color="black">{</font>
<font color="blue">public</font><font color="black">:</font>
    
    <font color="green">/**
     * You can document enums and other such beasts.
     */</font>
    <font color="blue">enum</font> Mood
    <font color="black">{</font>
        Up <font color="black">=</font> <font color="maroon">10</font>,
        Down,
        Sideways
    <font color="black">}</font>;


    <font color="green">/**
     * CppDoc won't get confused by all but the most gut-wrenching declarations.
     */</font>
    <font color="blue">typedef</font> SomeExternalClass<font color="black">*</font><font color="black">&</font> <font color="black">(</font> <font color="black">*</font>RandomFuncPtr <font color="black">)</font><font color="black">(</font> <font color="blue">class</font> AnotherClass<font color="black">*</font> <font color="black">=</font> <font color="maroon">0</font> <font color="black">)</font>;

    
    <font color="green">/**
     * CppDoc will cross-reference whatever it can.  Note that
     * &#60;i&#62;RandomFuncPtr&#60;/i&#62; is a link.
     */</font>
    <font color="blue">void</font> doSomethingStrange<font color="black">(</font> RandomFuncPtr ptr, <font color="blue">int</font> <font color="black">)</font> <font color="blue">const</font>
    <font color="black">{</font>
    <font color="black">}</font>


    <font color="green">/**
     * #defines are OK.  CppDoc will handle preprocessor macros
     * as well as #ifdef, #ifndef, etc.
     */</font>
    UGLY
    UGLIER<font color="black">(</font><font color="blue">int</font><font color="black">)</font>


<font color="blue">protected</font><font color="black">:</font>
    <font color="green">/**
     * A protected member that returns an object.
     */</font>
    Foo getFoo<font color="black">(</font><font color="black">)</font> <font color="blue">const</font>
    <font color="black">{</font>
    <font color="black">}</font>
<font color="black">}</font>;

</PRE>
</BODY>
</HTML>
